\chapter{tenonc命令}

tenonc是系统提供的编译打包工具。它将若干个.t源文件编译打包成库文件tbin或者是任务文件tbin.

\section{tbin库文件}

tbin是库文件，用于提供内置的数据类型和指令函数。

\section{tbin任务文件}

用户的代码要编译成tbin任务文件。一个任务文件包含一个任务所有的Tenon源代码模块。一个模块就是一个
.t源文件。

\section{例子}
下面的例子将a.t b.t c.t编译打包成任务文件mytask.tbin. \verb|-L|参数指定要导入的库文件所在的目录。

\begin{verbatim}
tenonc -L /path/to/lib a.t b.t c.t -o mytask.tbin
\end{verbatim}

下面的例子将lib1.t, lib2.t编译打包成库文件mylib.tbin.

\begin{verbatim}
tenonc -L /path/to/lib lib1.t lib2.t -o mylib.tbin
\end{verbatim}

\section{命令参数}

\begin{verbatim}
tenonc [options] FILES
\end{verbatim}

\subsection{FILES}

指定要编译和打包的.t源文件列表。可以使用目录，此时此目录下的所有.t文件都会被编译，
此过程是递归的，即目录下的子目录也会被递归的扫描。

\subsection{-o}

指定输出文件名。任务文件使用tbin扩展名。库文件使用tbin扩展名。

\subsection{-L}

指定编译时要导入的库文件的目录。

注意只能导入库文件。如果要编译的文件之间有依赖，则需要把所有涉及的文件都作为参数一起编译成一个包。

\subsection{-i}

指定一个需要导入的库文件的名称，不包含目录和扩展名。可以使用多个-i选项导入多个库。

注意只能导入库文件。如果要编译的文件之间有依赖，则需要把所有涉及的文件都作为参数一起编译成一个包。
